<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1. 创建XHR对象的构造函数 (重点)
        let x = new XMLHttpRequest();

        console.log(x.readyState); //0

        x.onreadystatechange = function(){
            console.log(x.readyState);
            console.log('响应状态码：',x.status);
            console.log("响应状态说明:",x.statusText);
            console.log(x.response); //任意格式
            // console.log(x.responseText); //文本格式

        }
       
        // 2. 初始化发起一个请求（重点）
        x.open('get','http://localhost/delayServer')
        // 3. 设置请求头（重点）- (可选)
        x.setRequestHeader('Content-type','application/x-www-form-urlencoded')

        // 4. 发送请求（重点）
        x.send();

        // x.responseType = 'json';
        // x.responseType = 'text'; //默认文本格式

        x.timeout = 4000;

        x.ontimeout = function(){
            alert('抱歉，网络错误，请稍后再试');
        }

        x.onerror = function() {
            alert('抱歉，网络错误。请检查是否联网');
        }

        // 5. 绑定readyStat
        
        // e改变的监听（重点）
            // 6. 标识请求状态的只读属性（重点）
            // 7. status: 响应状态码值, 比如200, 404（重点） 
                // 8. response: 响应体数据, 类型取决于responseType的指定（重点）
        // 9. 设置响应体类型（json）
        // 10. 设置超时时间（单位：毫秒）
        // 11. 绑定超时监听函数
        // 12. 当请求错误时监听函数 
    </script>
</body>

</html>